#include <iostream>
#include <mutex>
#include <condition_variable>

/**
 * C++ 条件变量（Condition Variable）
 *
 * std::condition_variable 用于实现线程间的等待和通知机制。
 *
 * std::condition_variable cv;
 * std::mutex mtx;
 * bool ready = false;
 *
 * std::unique_lock<std::mutex> lock(mtx);
 * cv.wait(lock,[]{return ready;});
 */

std::mutex mtx;
std::condition_variable cv;
bool ready = false;

void workerThread(){
    std::unique_lock<std::mutex> lk(mtx);
    cv.wait(lk,[]{    //等待条件
        //当条件满足时执行工作
        return ready;
    });
}

void mainThread(){
    std::lock_guard<std::mutex> lk(mtx);
    //准备数据
    ready = false;
    cv.notify_one();  //通知一个等待的线程
}


int main() {
    return 0;
}
